# Copyright (c) 2008, Luke Freeman
# All rights reserved.

# Redistribution and use in source and binary forms, with or without modification, 
# are permitted provided that the following conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice, this 
#      list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright notice, this 
#      list of conditions and the following disclaimer in the documentation and/or 
#      other materials provided with the distribution.
#    * Neither the name of Flag-Up nor the names of its contributors may 
#      be used to endorse or promote products derived from this software without specific 
#      prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
# POSSIBILITY OF SUCH DAMAGE.

import pygtk
import gtk, gtk.glade
import time
 

class NewMailNotification:

	def __init__(self):
		pref_glade_file = 'ui/glade/new_mail_dialog.glade'
		self.widgets = gtk.glade.XML(pref_glade_file)
		self.window = self.widgets.get_widget('new_mail_window')
		
		ebx_msg_main = self.widgets.get_widget('ebx_msg_main')

		bg_color = gtk.gdk.color_parse("#FFFFFF")
		ebx_msg_main.realize()
		ebx_msg_main.modify_bg(gtk.STATE_NORMAL, bg_color)
		



		#self.window.connect("response", lambda dlg, r: dlg.destroy())
    
		self.widgets.signal_autoconnect(self)         # connect the signals defined in the glade file
    
    
	# re-create the window for each new view but ensure that display is restricted to a single window
	def show(self):
		if self.window.get_property('visible') == False:
			if (self.window.is_composited()):
				self.window.set_opacity(0.75)
			self.window.show()
		else:
			self.window.get_window().raise_()


	def on_tbn_close_clicked(self, widget):
		self.window.destroy()

	def on_new_mail_window_focus_out_event(self, sender, event):
		pass

	def on_new_mail_window_key_press_event(self, sender, event):
		if event.keyval == 65307:
			self.window.hide()
